home *** CD-ROM | disk | FTP | other *** search
- unit ClientMainFormUnit;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls;
-
- type
- TForm1 = class(TForm)
- Memo1: TMemo;
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure Memo1Change(Sender: TObject);
- private
- Mailslot: THandle;
- end;
-
- {$ifdef Ver90}
- //This exception class did not exist in Delphi 2
- EWin32Error = class(Exception);
- {$endif}
-
- var
- Form1: TForm1;
-
- const
- MailslotNameLocalWritePrefix = '\\.\mailslot\';
- MailslotName = 'SampleMailslot';
- MailslotWriteName = MailslotNameLocalWritePrefix + MailslotName;
-
- implementation
-
- {$R *.DFM}
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Mailslot := FileOpen(MailslotWriteName, fmOpenWrite or fmShareDenyWrite);
- if DWord(Mailslot) = Invalid_Handle_Value then
- raise EWin32Error.Create('Cannot open client side of mailslot');
- end;
-
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- FileClose(Mailslot);
- end;
-
- procedure TForm1.Memo1Change(Sender: TObject);
- var
- Msg: String;
- begin
- Msg := Memo1.Text;
- if FileWrite(Mailslot, Msg[1], Length(Msg)) = Integer(HFile_Error) then
- raise EWin32Error.Create('Cannot write to mailslot');
- end;
-
- end.